#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N=1e5+10;
int a[N];
int b[N];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		for(int i=0;i<n;i++) cin>>a[i];
		if(a[n-1])
		{
			cout<<"NO"<<endl;
			continue;
		 } 
		int l=0;
		int cnt=n;
		int f=0;
		int pre=0;
		cout<<"YES"<<endl;
		for(int i=0;i<n;i++)
		{
			if(a[i]) 
			{
				pre++;
				if(f==0)
				{
					f=1; l=i;
				}
				continue;
			}
			b[cnt]=pre; cnt--;
			if(pre==0) continue;
			pre=0;
			
			int j=l; f=0;
			while(j<i && a[j])
			{
				b[cnt]=0; cnt--;
				j++;
			}
		}
		for(int i=1;i<=n;i++) cout<<b[i]<<' ';
		cout<<endl;
	}

	return 0;
}

